<template>
  <div class="todo-header">
    <input type="text" placeholder="请输入你的待办事项名称" v-model="title" />

    <button class="btn" @click="add">添加</button>
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";

export default defineComponent({
  name: "Header",
});
</script>

<script setup lang="ts">
import type { Todo } from "@/App.vue";
import { ref } from "vue";

const title = ref("");

const props = defineProps<{ addTodo(todo: Todo): void }>();

const add = () => {
  if (title.value.trim()) {
    const todoObj: Todo = {
      id: Date.now().toString(),
      title: title.value,
      done: false,
    };
    props.addTodo(todoObj);
    title.value = "";
  } else {
    alert("输入不能为空");
  }
};
</script>

<style scoped>
.todo-header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
.todo-header input {
  width: 300px;
  height: 28px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 7px;
}

.todo-header input:focus {
  outline: none;
  border-color: rgba(82, 168, 236, 0.8);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
    0 0 8px rgba(82, 168, 236, 0.6);
}
.btn {
  height: 36px;
  width: 80px;
  text-align: center;
  border-radius: 5px;
  border: 1px solid #ccc;
}
</style>
